package cn.thread;

/**
 * 生产者
 *
 * @author dunlingzi
 */
public class Producer extends Thread {

    /**
     * 产品存储区（容器）
     */
    ProductStack ps;

    public Producer(ProductStack ps) {
        this.ps = ps;
    }

    /**
     * 生产产品
     */
    @Override
    public void run() {
        //循环生产产品
        while (ps.isStackOpen()) {
            try {
                //生产产品 每10ms生产一个
                Thread.sleep(10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //生产产品
            Product pt = new Product();
            System.out.println(Thread.currentThread().getName() + "生产了：第" + pt.getId() + "号产品");
            //往存储区存储产品
            ps.push(pt);
        }
        System.out.println(Thread.currentThread().getName() + "已停止生产");
    }

}